Skip to content
This repository has been archived by the owner on Sep 1, 2020. It is now read-only.

Latest commit

 

History

History
28 lines (22 loc) · 575 Bytes

3.1.3 - Coroutine::yield.md

File metadata and controls

28 lines (22 loc) · 575 Bytes

Coroutine::yield

让出当前协程的执行权。

function Coroutine::yield();

此方法拥有另外一个别名:Coroutine::suspend()

必须与Coroutine::resume()方法成对使用。该协程yield以后,必须由其他外部协程resume,否则将会造成协程泄漏,被挂起的协程永远不会执行。

使用示例

$cid = go(function () {
    echo "co 1 start\n";
	co::yield();
	echo "co 1 end\n";
});

go(function () use ($cid) {
    echo "co 2 start\n";
	co::sleep(0.5);
	co::resume($cid);
	echo "co 2 end\n";
});